import { createRouter, createWebHashHistory } from 'vue-router'
import permissRoute from '../permission'
export const routes = [
  {
    path: '/login',
    name: 'login',
    component: () => import('@/views/login/index.vue')
  },
  {
    path: '/:pathMatch(.*)*',
    component: () => import('@/views/404/index.vue')
  }
]

export const router = createRouter({
  // 内部提供了 history 模式的实现。这里使用 hash 模式。
  history: createWebHashHistory(),
  routes // `routes: routes` 的缩写
})

router.beforeEach((to, from) => {
  const token = sessionStorage.getItem('tokenId')
  if (!token && to.name !== 'login') {
    router.replace('/login')
  } else
  // 判断layout是否已添加到路由，避免死循环
    if (to.name !== 'login' && token && !router.hasRoute('layout')) {
      permissRoute(JSON.parse(sessionStorage.getItem('userInfo')))
      return to.fullPath
    }
  // ...
  // 返回 false 以取消导航
})
